package com.esun.payment_api.service;

import com.esun.common.api.CommonResult;
import com.esun.payment_api.bean.*;
import com.esun.payment_api.dao.InvFormDao;
import com.esun.payment_api.domain.User;
import com.esun.payment_api.domain.WldwList;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface HomePageService {
    List<MyApplicationBean> getMyApplication(User user, Integer flowStatus, String searchStr, Integer pageSize, Integer pageNum) throws Exception;

    List<MyApplicationBean> getApplicationById(User user, Integer flowId) throws Exception;

    List<MyExamineBean> getMyExamine(User user, String searchStr, String type, Integer pageSize, Integer pageNum) throws Exception;

    List<MyExamineBean> getExamineById(User user, Integer flowId) throws Exception;

    List<MyExamineBean> getMyExamineHistory(User user, Integer flowStatus, String searchStr, Integer pageSize, Integer pageNum) throws Exception;
    //获取本部门已审批
    List<MyExamineBean> getMyDeptExamineHistory(User user, Integer flowStatus, String searchStr, Integer pageSize, Integer pageNum) throws Exception;

    List<MyExamineBean> getExamineHistoryById(User user, Integer flowId) throws Exception;

    List<MyMessageBean> getMyMessage(User user, Boolean unreadOnly, String searchStr, Integer pageSize, Integer pageNum) throws Exception;

    List<MyMessageBean> getMessageById(User user, Integer messageId) throws Exception;

    List<MyToDoBean> getMyToDo(User user, Boolean unreadOnly, String searchStr, Integer pageSize, Integer pageNum) throws Exception;

    List<MyToDoBean> getToDoById(User user, Integer messageId) throws Exception;

    HomePageInfo getHomePageInfo(User user);

    CommonResult messageSetRead(User user, Short messageId);

    CommonResult messageDelete(User user, Short messageId);

    List<DkInvoiceBean> queryInvoice(User user, Integer flowStatus, String searchStr, Integer pageSize, Integer pageNum);

    List<DkReceiveBean> queryReceive(User user, String searchStr, Integer pageSize, Integer pageNum);

    CommonResult batchApprove(User user, String flowIdStr, String flowNotes);

    CommonResult batchDecline(User user, String flowIdStr, String flowNotes);

    List<InvFormDao> getOverdueInvoice(User user, String searchStr, Integer pageSize, Integer pageNum);

    List<UnfilledBean> getUnfilledList(User user, String searchStr, Integer pageSize, Integer pageNum);

    }
